<!--
 * @Author: sbotlp
 * @Email: sbotlp@sina.com
 * @Date: 2019-11-07 20:54:13
 * @LastEditTime: 2019-11-07 21:59:29
 * @Description: http://www.sbotlp.com.cn
 -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <p>async test</p>
  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
  <script>
  /*    
    // 单线程同一个只能做一件事演示；
    // js单线程就是为了解决dom渲染冲突
    // 解决js单线程的问题是【异步】,但是代码执行没有按照代码书写顺序执行，阅读性不强；callback不容易模块化
    // 决绝异步的问题是 Promise 或者es7的 async/await 或者 jQuery 的Deferred
    js中的webworker 是多线程的，但是不能访问dom
  */
    /* console.time('start')
    var i,sum=0;
    for (i = 0; i <=1000000000; i++) {
     sum+=i;
    }
    console.log('sum', sum);
    console.timeEnd('start');
    alert(100);
    console.log(200); */


    /* console.log(100);
    setTimeout(() => {
      console.log(200); // setTimeout 是异步的会在最后执行
    }, 1000);
    console.log(300);
    console.log(400); */

    console.log(100);
     //  $.ajax 是异步的会在最后执行
    $.ajax({
      url:'./data.json',
      success: function (data) {
        console.log('data: ', data);
        console.log(200);
      }
    })
    console.log(300);
    console.log(400);
  </script>
</body>
</html>